<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<title>CompressedRTF (POI API Documentation)</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="CompressedRTF (POI API Documentation)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/CompressedRTF.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/poi/hmef/Attachment.html" title="class in org.apache.poi.hmef"><span class="strong">PREV CLASS</span></a></li>
<li><a href="../../../../org/apache/poi/hmef/HMEFMessage.html" title="class in org.apache.poi.hmef"><span class="strong">NEXT CLASS</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/poi/hmef/CompressedRTF.html" target="_top">FRAMES</a></li>
<li><a href="CompressedRTF.html" target="_top">NO FRAMES</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>SUMMARY:&nbsp;</li>
<li>NESTED&nbsp;|&nbsp;</li>
<li><a href="#field_summary">FIELD</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">CONSTR</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">METHOD</a></li>
</ul>
<ul class="subNavList">
<li>DETAIL:&nbsp;</li>
<li><a href="#field_detail">FIELD</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">CONSTR</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">METHOD</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<p class="subTitle">org.apache.poi.hmef</p>
<h2 title="Class CompressedRTF" class="title">Class CompressedRTF</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li><a href="../../../../org/apache/poi/util/LZWDecompresser.html" title="class in org.apache.poi.util">org.apache.poi.util.LZWDecompresser</a></li>
<li>
<ul class="inheritance">
<li>org.apache.poi.hmef.CompressedRTF</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public final class <strong>CompressedRTF</strong>
extends <a href="../../../../org/apache/poi/util/LZWDecompresser.html" title="class in org.apache.poi.util">LZWDecompresser</a></pre>
<div class="block">Within a <a href="../../../../org/apache/poi/hmef/HMEFMessage.html" title="class in org.apache.poi.hmef"><code>HMEFMessage</code></a>, the content is often
  stored in as RTF, but LZW compressed. This class
  handles decompressing it for you.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static byte[]</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/poi/hmef/CompressedRTF.html#COMPRESSED_SIGNATURE">COMPRESSED_SIGNATURE</a></strong></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/poi/hmef/CompressedRTF.html#COMPRESSED_SIGNATURE_INT">COMPRESSED_SIGNATURE_INT</a></strong></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/poi/hmef/CompressedRTF.html#LZW_RTF_PRELOAD">LZW_RTF_PRELOAD</a></strong></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static byte[]</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/poi/hmef/CompressedRTF.html#UNCOMPRESSED_SIGNATURE">UNCOMPRESSED_SIGNATURE</a></strong></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/poi/hmef/CompressedRTF.html#UNCOMPRESSED_SIGNATURE_INT">UNCOMPRESSED_SIGNATURE_INT</a></strong></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../org/apache/poi/hmef/CompressedRTF.html#CompressedRTF()">CompressedRTF</a></strong>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/poi/hmef/CompressedRTF.html#adjustDictionaryOffset(int)">adjustDictionaryOffset</a></strong>(int&nbsp;offset)</code>
<div class="block">We use regular dictionary offsets, so no
  need to change anything</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/poi/hmef/CompressedRTF.html#decompress(java.io.InputStream, java.io.OutputStream)">decompress</a></strong>(java.io.InputStream&nbsp;src,
          java.io.OutputStream&nbsp;res)</code>
<div class="block">Decompresses the whole of the compressed RTF
  stream, outputting the resulting RTF bytes.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/poi/hmef/CompressedRTF.html#getCompressedSize()">getCompressedSize</a></strong>()</code>
<div class="block">Returns how big the compressed version was.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/poi/hmef/CompressedRTF.html#getDeCompressedSize()">getDeCompressedSize</a></strong>()</code>
<div class="block">Returns how big the decompressed version was.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><strong><a href="../../../../org/apache/poi/hmef/CompressedRTF.html#populateDictionary(byte[])">populateDictionary</a></strong>(byte[]&nbsp;dict)</code>
<div class="block">Populates the dictionary, and returns where in it
  to begin writing new codes.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.apache.poi.util.LZWDecompresser">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.poi.util.<a href="../../../../org/apache/poi/util/LZWDecompresser.html" title="class in org.apache.poi.util">LZWDecompresser</a></h3>
<code><a href="../../../../org/apache/poi/util/LZWDecompresser.html#decompress(java.io.InputStream)">decompress</a>, <a href="../../../../org/apache/poi/util/LZWDecompresser.html#fromByte(byte)">fromByte</a>, <a href="../../../../org/apache/poi/util/LZWDecompresser.html#fromInt(int)">fromInt</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_detail">
<!--   -->
</a>
<h3>Field Detail</h3>
<a name="COMPRESSED_SIGNATURE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>COMPRESSED_SIGNATURE</h4>
<pre>public static final&nbsp;byte[] COMPRESSED_SIGNATURE</pre>
</li>
</ul>
<a name="UNCOMPRESSED_SIGNATURE">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>UNCOMPRESSED_SIGNATURE</h4>
<pre>public static final&nbsp;byte[] UNCOMPRESSED_SIGNATURE</pre>
</li>
</ul>
<a name="COMPRESSED_SIGNATURE_INT">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>COMPRESSED_SIGNATURE_INT</h4>
<pre>public static final&nbsp;int COMPRESSED_SIGNATURE_INT</pre>
</li>
</ul>
<a name="UNCOMPRESSED_SIGNATURE_INT">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>UNCOMPRESSED_SIGNATURE_INT</h4>
<pre>public static final&nbsp;int UNCOMPRESSED_SIGNATURE_INT</pre>
</li>
</ul>
<a name="LZW_RTF_PRELOAD">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>LZW_RTF_PRELOAD</h4>
<pre>public static final&nbsp;java.lang.String LZW_RTF_PRELOAD</pre>
<dl><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../constant-values.html#org.apache.poi.hmef.CompressedRTF.LZW_RTF_PRELOAD">Constant Field Values</a></dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="CompressedRTF()">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>CompressedRTF</h4>
<pre>public&nbsp;CompressedRTF()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="decompress(java.io.InputStream, java.io.OutputStream)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>decompress</h4>
<pre>public&nbsp;void&nbsp;decompress(java.io.InputStream&nbsp;src,
              java.io.OutputStream&nbsp;res)
                throws java.io.IOException</pre>
<div class="block">Decompresses the whole of the compressed RTF
  stream, outputting the resulting RTF bytes.
 Note - will decompress any padding at the end of
  the input, if present, use <a href="../../../../org/apache/poi/hmef/CompressedRTF.html#getDeCompressedSize()"><code>getDeCompressedSize()</code></a>
  if you need to know how much of the result is
  real. (Padding may be up to 7 bytes).</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../org/apache/poi/util/LZWDecompresser.html#decompress(java.io.InputStream, java.io.OutputStream)">decompress</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/apache/poi/util/LZWDecompresser.html" title="class in org.apache.poi.util">LZWDecompresser</a></code></dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd></dl>
</li>
</ul>
<a name="getCompressedSize()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCompressedSize</h4>
<pre>public&nbsp;int&nbsp;getCompressedSize()</pre>
<div class="block">Returns how big the compressed version was.</div>
</li>
</ul>
<a name="getDeCompressedSize()">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDeCompressedSize</h4>
<pre>public&nbsp;int&nbsp;getDeCompressedSize()</pre>
<div class="block">Returns how big the decompressed version was.</div>
</li>
</ul>
<a name="adjustDictionaryOffset(int)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>adjustDictionaryOffset</h4>
<pre>protected&nbsp;int&nbsp;adjustDictionaryOffset(int&nbsp;offset)</pre>
<div class="block">We use regular dictionary offsets, so no
  need to change anything</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../org/apache/poi/util/LZWDecompresser.html#adjustDictionaryOffset(int)">adjustDictionaryOffset</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/apache/poi/util/LZWDecompresser.html" title="class in org.apache.poi.util">LZWDecompresser</a></code></dd>
</dl>
</li>
</ul>
<a name="populateDictionary(byte[])">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>populateDictionary</h4>
<pre>protected&nbsp;int&nbsp;populateDictionary(byte[]&nbsp;dict)</pre>
<div class="block"><strong>Description copied from class:&nbsp;<code><a href="../../../../org/apache/poi/util/LZWDecompresser.html#populateDictionary(byte[])">LZWDecompresser</a></code></strong></div>
<div class="block">Populates the dictionary, and returns where in it
  to begin writing new codes.
 Generally, if the dictionary is pre-populated, then new
  codes should be placed at the end of that block.
 Equally, if the dictionary is left with all zeros, then
  usually the new codes can go in at the start.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../org/apache/poi/util/LZWDecompresser.html#populateDictionary(byte[])">populateDictionary</a></code>&nbsp;in class&nbsp;<code><a href="../../../../org/apache/poi/util/LZWDecompresser.html" title="class in org.apache.poi.util">LZWDecompresser</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/CompressedRTF.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/apache/poi/hmef/Attachment.html" title="class in org.apache.poi.hmef"><span class="strong">PREV CLASS</span></a></li>
<li><a href="../../../../org/apache/poi/hmef/HMEFMessage.html" title="class in org.apache.poi.hmef"><span class="strong">NEXT CLASS</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/poi/hmef/CompressedRTF.html" target="_top">FRAMES</a></li>
<li><a href="CompressedRTF.html" target="_top">NO FRAMES</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>SUMMARY:&nbsp;</li>
<li>NESTED&nbsp;|&nbsp;</li>
<li><a href="#field_summary">FIELD</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">CONSTR</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">METHOD</a></li>
</ul>
<ul class="subNavList">
<li>DETAIL:&nbsp;</li>
<li><a href="#field_detail">FIELD</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">CONSTR</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">METHOD</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>
                <i>Copyright 2014 The Apache Software Foundation or
        its licensors, as applicable.</i>
            </small></p>
</body>
</html>
